<h1 id="http-server">http server</h1>
<ul>
<li><a href="#httprequest">Http Request</a></li>
<li><a href="#serverresponse">Server Response</a></li>
</ul>
<h3 id="httpserver">HttpServer</h3>
<p><code>HttpServer</code>是内置函数<code>httpServer(post)</code>的返回値类型</p>
<table>
<thead>
<tr>
<th>方法</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>get(path, func)</td>
<td>定义一个get 服务</td>
</tr>
<tr>
<td>post(path, func)</td>
<td>定义一个post 服务</td>
</tr>
<tr>
<td>startup()</td>
<td>启动http服务</td>
</tr>
</tbody></table>
<h3 id="get-服务">get 服务</h3>
<pre><code class="hljs language-javascript">server = <span class="hljs-title function_">httpServer</span>(<span class="hljs-number">8888</span>)

server.<span class="hljs-title function_">get</span>(<span class="hljs-string">&quot;/hi&quot;</span>, $ req, resp {
    resp.<span class="hljs-title function_">txt</span>(<span class="hljs-string">&quot;Hello World!&quot;</span>)
})

server.<span class="hljs-title function_">startup</span>()
</code></pre>
<h3 id="post-服务">post 服务</h3>
<pre><code class="hljs language-javascript">server = <span class="hljs-title function_">httpServer</span>(<span class="hljs-number">8888</span>)

server.<span class="hljs-title function_">post</span>(<span class="hljs-string">&quot;/newUser&quot;</span>, $ req, resp {
    <span class="hljs-comment">// 打印参数</span>
    req.<span class="hljs-title function_">args</span>().<span class="hljs-title function_">pretty</span>()

    resp.<span class="hljs-title function_">json</span>({<span class="hljs-string">&quot;result&quot;</span>:<span class="hljs-string">&quot;ok&quot;</span>})
})

server.<span class="hljs-title function_">startup</span>()
</code></pre>
<h1 id="httprequest">HttpRequest</h1>
<p><code>HttpRequest</code> 是 <code>HttpServer</code>服务函数第一个形参的数据类型</p>
<table>
<thead>
<tr>
<th>方法</th>
<th>别名</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>showHeaders()</td>
<td>showhs()</td>
<td>在控制台打印所有请求头</td>
</tr>
<tr>
<td>headers()</td>
<td></td>
<td>返回所有请求头</td>
</tr>
<tr>
<td>getHeaderVal(name)</td>
<td>h(name)</td>
<td>获取请求头，如果有多个值返回第一个值</td>
</tr>
<tr>
<td>getHeaderVals(name)</td>
<td>hs(name)</td>
<td>获取请求的所有值</td>
</tr>
<tr>
<td>args()</td>
<td></td>
<td>返回所有参数不包括上传文件</td>
</tr>
<tr>
<td>json()</td>
<td></td>
<td>请求体数据以json形式返回</td>
</tr>
<tr>
<td>body()</td>
<td></td>
<td>请求体数据以string形式返回</td>
</tr>
<tr>
<td>bodyBytes()</td>
<td></td>
<td>请求体数据以<code>ByteArray</code>形式返回</td>
</tr>
<tr>
<td>param(name)</td>
<td></td>
<td>获取请求参数，如果有多个值返回第一个值</td>
</tr>
<tr>
<td>params(name)</td>
<td></td>
<td>获取请求参数所有值</td>
</tr>
<tr>
<td>files()</td>
<td></td>
<td>所有上传文件</td>
</tr>
<tr>
<td>getFiles(formName)</td>
<td></td>
<td>指定form name的所有文件</td>
</tr>
<tr>
<td>getFile(formName)</td>
<td></td>
<td>指定form name的文件，如果有多个返回第一个</td>
</tr>
</tbody></table>
<h3 id="multipartfile">MultipartFile</h3>
<p><code>MultipartFile</code>是上传文件所使用的文件类型<br><code>HttpRequest</code>的方法 <code>files()</code>，<code>getFiles(formName)</code>，<code>getFile(formName)</code>返回值的主要类型</p>
<table>
<thead>
<tr>
<th>方法</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>name()</td>
<td>文件名称</td>
</tr>
<tr>
<td>size()</td>
<td>文件大小</td>
</tr>
<tr>
<td>bytes()</td>
<td>文件数据以<code>ByteArray</code>形式返回</td>
</tr>
<tr>
<td>save(path)</td>
<td>文件保存至指定位置</td>
</tr>
</tbody></table>
<h1 id="serverresponse">ServerResponse</h1>
<p><code>HttpResponse</code> 是 <code>HttpServer</code>服务函数第二个形参的数据类型，用于响应http请求。</p>
<table>
<thead>
<tr>
<th>方法</th>
<th>别名</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>redirect(url)</td>
<td></td>
<td>重定向</td>
</tr>
<tr>
<td>txt(content)</td>
<td></td>
<td>返回一个文本内容</td>
</tr>
<tr>
<td>html(content)</td>
<td></td>
<td>返回一个html</td>
</tr>
<tr>
<td>json(content)</td>
<td></td>
<td>返回一个json</td>
</tr>
<tr>
<td>file(bytes)</td>
<td></td>
<td>返回一个文件，通常用于文件文件预览</td>
</tr>
<tr>
<td>fileForDownload(fileName, bytes)</td>
<td>dl(fileName, bytes)</td>
<td>返回一个用于下载的文件</td>
</tr>
<tr>
<td>setHeader(name, value)</td>
<td>seth(name, value)</td>
<td>设置响应头</td>
</tr>
<tr>
<td>setContentType(value)</td>
<td>setType(value)</td>
<td>设置响应体的数据类型</td>
</tr>
</tbody></table>
